package com.pe.pgn.clubpgn.service.impl;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.pe.pgn.clubpgn.common.CLPConstantes;
import com.pe.pgn.clubpgn.dao.DevolucionClienteDao;
import com.pe.pgn.clubpgn.domain.beans.BNAlmacen;
import com.pe.pgn.clubpgn.domain.beans.BNArticulo;
import com.pe.pgn.clubpgn.domain.beans.BNClientesPersona;
import com.pe.pgn.clubpgn.domain.beans.BNDocumentoDetalle;
import com.pe.pgn.clubpgn.domain.beans.BNDocumentoMovArticulo;
import com.pe.pgn.clubpgn.service.DevolucionClienteService;

@Service("devolucionClienteService")
public class DevolucionClienteServiceImpl implements DevolucionClienteService {

	@Autowired DevolucionClienteDao devClienteDao;	

	public List<BNDocumentoMovArticulo> busquedaCanje(String codeEstacion,
			String codeTarjeta, String daInicioDoc, String daFinDoc,
			String coCatalogo, String nuSerie, String nuDocumento,
			String deCliente, String codePremio, String stCanje,
			String stTipoDoc) {
		return devClienteDao.busquedaCanje(codeEstacion, codeTarjeta, daInicioDoc, daFinDoc, coCatalogo, nuSerie, nuDocumento, deCliente, codePremio, stCanje, CLPConstantes.ST_DOCUMENTO_DEVOLUCION_CLIENTE);
	}

	
	public List<BNDocumentoMovArticulo> listaDevoluciones() {
		return devClienteDao.listaDevoluciones();
	}

	@SuppressWarnings("rawtypes")
	public Map guardarDevolucion(BNDocumentoMovArticulo bndocuamento) {		
		return devClienteDao.guardarDevolucion(bndocuamento);
	}

	public BNAlmacen obtenerAlmacenPorEstacion(Long idEstacion) {
		return devClienteDao.obtenerAlmacenPorEstacion(idEstacion);
	}

	public BNClientesPersona obtenerDatosClientePorTarjeta(String codeTarjeta) {
		return devClienteDao.obtenerDatosClientePorTarjeta(codeTarjeta);
	}

	public BNArticulo obtenerDatosPremioPorCodigo(String codePremio, String codAlmacen) {
		return devClienteDao.obtenerDatosPremioPorCodigo(codePremio, codAlmacen);
	}

	public BNDocumentoMovArticulo obtenerDocumento(Long id) {
		return devClienteDao.obtenerDocumento(id);
	}
	
	public BNDocumentoMovArticulo obtenerDocumentoDevuelto(Long id) {
		return devClienteDao.obtenerDocumentoDevuelto(id);
	}

	public List<BNDocumentoDetalle> obtenerListaDevueltos(Long id) {
		return devClienteDao.obtenerListaDevueltos(id);
	}

	@SuppressWarnings("rawtypes")
	public Map validaStockDisponibleDevolucion(
			BNDocumentoMovArticulo bndocumento) {
		return devClienteDao.validaStockDisponibleDevolucion(bndocumento);
	}	
}
